home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Skunkware 5
/
Skunkware 5.iso
/
src
/
X11
/
wais
/
ir
/
cutil.h
< prev
next >
Wrap
C/C++ Source or Header
|
1995-05-09
|
5KB
|
201 lines
/* WIDE AREA INFORMATION SERVER SOFTWARE
No guarantees or restrictions. See the readme file for the full standard
disclaimer.
3.26.90 Harry Morris, morris@think.com
4.11.90 HWM - generalized conditional includes (see c-dialect.h)
*
* $Log: cutil.h,v $
* Revision 1.19.1.1 1992/07/11 00:58:07 curtisg
* Changes for SCO UNIX
*
* Revision 1.19 92/03/07 19:44:24 jonathan
* Added some IBM defines. mycroft@hal.gnu.ai.mit.edu.
*
* Revision 1.18 92/02/21 11:01:07 jonathan
* Added wais_log_level
*
* Revision 1.17 92/02/16 21:24:25 jonathan
* Removed macro for waislog under BSD, since vprintf is now part of cutil.c
*
*
*/
#ifndef _H_C_util_
#define _H_C_util_
#include "cdialect.h"
#if defined(ANSI_LIKE) || defined(PROTO_ANSI)
#include <stdarg.h>
#else /* ndef ANSI_LIKE */
#include <varargs.h>
#endif /* ndef ANSI_LIKE */
#include <stdio.h> /* this used to be wrapped in an ifndef NULL,
but messed up on some gcc's */
#if defined(THINK_C) || defined(_IBMR2) || defined(M_UNIX)
#include <time.h>
#endif
#if !defined(THINK_C)
#include <sys/time.h>
#endif
#define MAX_FILENAME_LEN 255
#ifdef ANSI_LIKE
#ifndef EXIT_SUCCESS /* only include it if not already included */
#include <stdlib.h> /* this is a shame */
#endif /* ndef EXIT_SUCCESS */
#else
#include "ustubs.h"
#endif /* else */
/*----------------------------------------------------------------------*/
/* types and constants */
#ifndef boolean
#define boolean unsigned long
#endif /* ndef boolean */
#ifndef THINK_C
#ifndef Boolean
#define Boolean boolean
#endif /* ndef Boolean */
#endif /* ndef THINK_C */
#ifndef true
#define true (boolean)1L
#endif /* ndef true */
#ifndef false
#define false (boolean)0L /* used to be (!true), but broke
some compilers */
#endif /* ndef false */
#ifndef TRUE
#define TRUE true
#endif /* ndef TRUE */
#ifndef FALSE
#define FALSE false
#endif /* ndef FALSE */
#ifndef NULL
#define NULL 0L
#endif /* ndef NULL */
/*----------------------------------------------------------------------*/
/* Fast string macros - warning don't pass NULL to these! */
#define STREQ(s1,s2) ((*(s1)==*(s2)) && !strcmp(s1,s2))
#define STRNCMP(s1,s2,n) \
((*(s1)==*(s2)) ? strncmp(s1,s2,n) : (*(s1) - *(s2)))
/*----------------------------------------------------------------------*/
/* convenience */
#define NL() printf("\n")
/*----------------------------------------------------------------------*/
/* functions */
#ifdef __cplusplus
/* declare these as C style functions */
extern "C"
{
#endif /* def __cplusplus */
/* enhanced memory handling functions - don't call them directly, use the
macros below */
void fs_checkPtr _AP((void* ptr));
void* fs_malloc _AP((size_t size));
void* fs_realloc _AP((void* ptr,size_t size));
void fs_free _AP((void* ptr));
char* fs_strncat _AP((char* dst,char* src,size_t maxToAdd,size_t maxTotal));
char* fs_strncpy _AP((char* s1,char* s2, long n));
/* macros for memory functions. call these in your program. */
#define s_checkPtr(ptr) fs_checkPtr(ptr)
#define s_malloc(size) fs_malloc(size)
#define s_realloc(ptr,size) fs_realloc((ptr),(size))
#define s_free(ptr) { fs_free((char*)ptr); ptr = NULL; }
#define s_strncat(dst,src,maxToAdd,maxTotal) fs_strncat((dst),(src),(maxToAdd),(maxTotal))
#define s_strncpy(s1,s2,n) fs_strncpy((s1), (s2), (n))
char* s_strdup _AP((char* s));
char* strtokf _AP((char* s1,long (*isDelimiter)(long c)));
char* strtokf_isalnum _AP((char* s1));
#define IS_DELIMITER 1
#define NOT_DELIMITER !IS_DELIMITER
#ifdef ANSI_LIKE /* use ansi */
long cprintf _AP((boolean print,char* format,...));
#else /* use K & R */
long cprintf _AP(());
#endif
#ifdef ANSI_LIKE /* use ansi */
void waislog _AP((long priority, long message, char* format,...));
#else /* use K & R */
void waislog _AP(());
#endif /* ANSI_LIKE */
/* waislog priorities and messages */
/* this is backwards because of how wais_log_level works. */
#define WLOG_HIGH 1
#define WLOG_MEDIUM 5
#define WLOG_LOW 9
#define WLOG_CONNECT 1
#define WLOG_CLOSE 2
#define WLOG_SEARCH 3
#define WLOG_RESULTS 4
#define WLOG_RETRIEVE 5
#define WLOG_INDEX 6
#define WLOG_INFO 100
#define WLOG_ERROR -1
#define WLOG_WARNING -2
void warn _AP((char* message));
boolean substrcmp _AP((char *string1, char *string2));
#ifndef MAX
#define MAX(x,y) (((x) > (y)) ? (x) : (y))
#endif
#ifndef MIN
#define MIN(x,y) (((x) < (y)) ? (x) : (y))
#endif
#define ABS(x) (((x) < 0) ? (-(x)) : (x))
char *printable_time _AP((void));
char char_downcase _AP((unsigned long ch));
char *string_downcase _AP((char* word));
char *next_arg _AP((int *argc, char ***argv));
char *peek_arg _AP((int *argc, char ***argv));
void beFriendly _AP((void));
#ifdef _C_C_util_
long wais_pid = 0;
long log_line = 0;
long wais_log_level = 10;
#else
extern long wais_pid;
extern long log_line;
extern wais_log_level;
#endif /* _C_C_util_
#ifdef __cplusplus
}
#endif /* def __cplusplus */
/*----------------------------------------------------------------------*/
#endif /* ndef _H_C_util_ */